﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MaquinaJMG.GUI.Contrato;
using Datos.Entidades;
using Logica.Comandos.AdministracionUsuarios;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos;
using Logica.FabricaLogica;
using System.Windows.Forms;
using Logica.Comandos.ComandosAdministracionEvento;

namespace MaquinaJMG.GUI.Presentador
{

    public class PresentadorConsultarEvento
    {

        private IContratoConsultarEvento _evento;
        List<Entidad> listaUsuarios = new List<Entidad>();
        private Entidad aaa = new Entidad();
        private Entidad aaaa = new Entidad();
      

        // <summary>
        /// presentador para hacer llamada a las interfaces de ConsultarEvento
        /// </summary>
        
        public PresentadorConsultarEvento(IContratoConsultarEvento evento)
        {
            _evento = evento;
        }

        // <summary>
        /// procedimiento que consulta eventos
        /// </summary>
        /// <param name="usuario">Evento a seleccionar</param>
        

        /*public void ConsultarEventos()
        {
            Comando comando = FabricaComandoEvento.ObtenerComandoConsultarEvento();
            //comando.Tipo = fi;
           // comando.Cadena = ff;
            (comando as ComandoConsultarEvento).Ejecutar();
            //comando.Ejecutar();
            listaUsuarios = comando.ListaEntidad;
            _evento.eventos.DataSource = listaUsuarios;

        }*/
        private List<Entidad> misEventos = new List<Entidad>();
       
        
        public void ConsultarEventos()
        {
            Comando comando = FabricaComandoEvento.ObtenerComandoBuscarEventoFechaInicioMayor();
            comando.Ejecutar();
            misEventos = comando.ListaEntidad;
            if (misEventos.Count!=0)
            {

                for (int i = 0; i < misEventos.Count; i++)
                {

                    _evento.evento.Items.Add((misEventos.ElementAt(i) as EventoCategoria).NombreEvento);
                }
                _evento.evento.SelectedIndex=0;
               // obtenerInfo(0);
                //_evento.evento.DataBind();

            }
                
        }

        public void obtenerInfo(string poss) 
        {
            int pos = obtenerCategoriaNOmbre(poss);


            Comando comando = FabricaComandoEvento.ObtenerComandoConsultarEvento();
            comando.Ejecutar();
            misEventos = comando.ListaEntidad;
            if (misEventos != null)
            {
                for (int i = 0; i < misEventos.Count; i++)
                {
                    if ((misEventos.ElementAt(i) as Evento).NombreEvento == poss)
                    {
                        _evento.fechaInicio.Text = (misEventos.ElementAt(i) as Evento).Fecha_Inicio;
                        _evento.fechaFin.Text = (misEventos.ElementAt(i) as Evento).Fecha_Fin;
                        _evento.hora.Text = (misEventos.ElementAt(i) as Evento).Hora + ":" + (misEventos.ElementAt(i) as Evento).Minuto;
                    }
                    }
            }
        }



      /*  public string ClickCrear()
        {

            Entidad participante = FabricaEntidades.ObtenerParticipante();
            (participante as Participante).NombreParticipante = _creacionParticipante.Nombre.Text;
            (participante as Participante).Categoria = _creacionParticipante.categoria.SelectedIndex;

            Comando comando = FabricaComandoParticipante.CrearComandoCrearParticipante(participante);
            comando.Ejecutar();
            if (!comando.Flag)
                return "No se ha podido crear el participante!";
            else

                return "El participante fue creado con éxito!";
        }*/

        // <summary>
        /// procedimiento que obtiene id_categoria de una categoria
        /// </summary>
        /// <param name="usuario">Categoria a seleccionar dado nombre</param>

        public int obtenerCategoriaNOmbre(string nomb)
        {
            Comando comando = FabricaComandoEvento.ObtenerComandoBuscarEventoNombre();
            comando.Tipo = nomb;
            (comando as ComandoBuscarEventoNombre).Ejecutar();
            aaa = comando.Entidad;
            int id = (aaa as Evento).Id_Evento;
            return id;
        }



    }
}